package com.customer.feign;

import com.customer.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

// 标注该类是一个feign接口
@FeignClient(value = "service-provider",fallback = UserClientFallBack.class)
public interface UserClient {
    /**
     * 首先是一个接口，Feign会通过动态代理，帮我们生成实现类，这点个mybatis的mapper很像
     * @FeignClient，声明这是Feign客户端，类似@Mapper注解，同时通过value属性指定服务名称
     * 接口中的方法，完全采用springmvc的注解，Feign会根据注解帮我们生成url并发问获取结果
     */


    /**
     * 查询所有用户信息
     * @return
     */

    @GetMapping("/findUserAll")
    List<User> findAllUser();

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    @GetMapping("/findOneUser/{id}")
    User findOneUser(@PathVariable("id") Integer id);

    @RequestMapping("/findUserById/{id}")
    public Map findUserById(@PathVariable("id") Integer id);
}
